{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 新冠数据分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd \n",
    "import numpy as np \n",
    "import matplotlib.pyplot as plt \n",
    "import seaborn as sns \n",
    "from tqdm import tqdm \n",
    "import warnings \n",
    "warnings.filterwarnings('ignore')\n",
    "import chardet \n",
    "%matplotlib inline \n",
    "plt.rcParams['font.sans-serif'] = [\"SimHei\"]\n",
    "plt.rcParams[\"axes.unicode_minus\"] = False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "#由于文件的格式问题需要处理一下\n",
    "#附件的编码有问题，封装一个获取文件编码的函数\n",
    "def detect_encoding(file_path):\n",
    "    with open(file_path,'rb') as f:\n",
    "        data = f.read()\n",
    "        result = chardet.detect(data)\n",
    "        return result['encoding']\n",
    " "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 读取人员信息表\n",
    "df_people = pd.read_csv(r'C:\\Users\\86178\\Desktop\\jpnb-test\\新冠数据\\附件2.csv',engine='python',encoding = detect_encoding(r'C:\\Users\\86178\\Desktop\\jpnb-test\\新冠数据\\附件2.csv'))\n",
    "# 读取场所信息表\n",
    "df_place = pd.read_csv(r'C:\\Users\\86178\\Desktop\\jpnb-test\\新冠数据\\附件3.csv',engine='python',encoding = detect_encoding(r'C:\\Users\\86178\\Desktop\\jpnb-test\\新冠数据\\附件3.csv'))\n",
    "# 个人自查上报信息表\n",
    "df_self_check = pd.read_csv(r'C:\\Users\\86178\\Desktop\\jpnb-test\\新冠数据\\附件4.csv',engine='python',encoding = detect_encoding(r'C:\\Users\\86178\\Desktop\\jpnb-test\\新冠数据\\附件4.csv'))\n",
    "# 场所码扫码信息表\n",
    "df_scan = pd.read_csv(r'C:\\Users\\86178\\Desktop\\jpnb-test\\新冠数据\\附件5.csv',engine='python',encoding = detect_encoding(r'C:\\Users\\86178\\Desktop\\jpnb-test\\新冠数据\\附件5.csv'))\n",
    "# 核算采样检测信息表\n",
    "df_nucleic_acid = pd.read_csv(r'C:\\Users\\86178\\Desktop\\jpnb-test\\新冠数据\\附件6.csv',engine='python',encoding = detect_encoding(r'C:\\Users\\86178\\Desktop\\jpnb-test\\新冠数据\\附件6.csv'))\n",
    "#疫苗接种信息表\n",
    "df_vaccination = pd.read_csv(r'C:\\Users\\86178\\Desktop\\jpnb-test\\新冠数据\\附件7.csv',engine='python',encoding = detect_encoding(r'C:\\Users\\86178\\Desktop\\jpnb-test\\新冠数据\\附件7.csv'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 附件2-人员信息表处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3\n",
      "['Å®' 'ÄÐ' 'Î´Öª']\n"
     ]
    }
   ],
   "source": [
    "print(len(df_people['gender'].unique()))\n",
    "print(df_people['gender'].unique())\n",
    "# 发现人员信息表中gender字段有异常"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>openid</th>\n",
       "      <th>gender</th>\n",
       "      <th>nation</th>\n",
       "      <th>age</th>\n",
       "      <th>birthdate</th>\n",
       "      <th>create_time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>oESgL49f6uUwCtcLxpi12TqQKdr4geRvbzGM</td>\n",
       "      <td>男</td>\n",
       "      <td>ºº</td>\n",
       "      <td>36</td>\n",
       "      <td>1984/10/17</td>\n",
       "      <td>2021/8/25 8:47</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>oESgL4o5i1n3mU8KdGAOZgEqLhcQ7gICHN</td>\n",
       "      <td>男</td>\n",
       "      <td>ºº</td>\n",
       "      <td>39</td>\n",
       "      <td>1982/10/2</td>\n",
       "      <td>2022/8/14 21:42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>oESgL4YWbZ7lhxkM0CN2moG59QVFsAni1</td>\n",
       "      <td>男</td>\n",
       "      <td>ºº</td>\n",
       "      <td>15</td>\n",
       "      <td>2005/10/7</td>\n",
       "      <td>2021/1/23 22:37</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>oESgL4yah3mzb4GAKlSgIU72cL6VNZHOE0</td>\n",
       "      <td>女</td>\n",
       "      <td>ºº</td>\n",
       "      <td>26</td>\n",
       "      <td>1993/8/27</td>\n",
       "      <td>2020/8/20 6:08</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>oESgL41OnbyY4gBvqPKxuUpNwLe2C9o3S</td>\n",
       "      <td>女</td>\n",
       "      <td>ºº</td>\n",
       "      <td>50</td>\n",
       "      <td>1971/2/28</td>\n",
       "      <td>2021/3/26 11:06</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id                                openid gender nation  age  \\\n",
       "0        1  oESgL49f6uUwCtcLxpi12TqQKdr4geRvbzGM      男     ºº   36   \n",
       "1        2    oESgL4o5i1n3mU8KdGAOZgEqLhcQ7gICHN      男     ºº   39   \n",
       "2        3     oESgL4YWbZ7lhxkM0CN2moG59QVFsAni1      男     ºº   15   \n",
       "3        4    oESgL4yah3mzb4GAKlSgIU72cL6VNZHOE0      女     ºº   26   \n",
       "4        5     oESgL41OnbyY4gBvqPKxuUpNwLe2C9o3S      女     ºº   50   \n",
       "\n",
       "    birthdate      create_time  \n",
       "0  1984/10/17   2021/8/25 8:47  \n",
       "1   1982/10/2  2022/8/14 21:42  \n",
       "2   2005/10/7  2021/1/23 22:37  \n",
       "3   1993/8/27   2020/8/20 6:08  \n",
       "4   1971/2/28  2021/3/26 11:06  "
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dic = {'Å®':'男','ÄÐ':'女','Î´Öª':'未知'}\n",
    "df_people['gender'] = df_people['gender'].map(dic)\n",
    "df_people.head()\n",
    "# gender列异常值处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>openid</th>\n",
       "      <th>gender</th>\n",
       "      <th>nation</th>\n",
       "      <th>age</th>\n",
       "      <th>birthdate</th>\n",
       "      <th>create_time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>oESgL49f6uUwCtcLxpi12TqQKdr4geRvbzGM</td>\n",
       "      <td>男</td>\n",
       "      <td>ºº</td>\n",
       "      <td>36</td>\n",
       "      <td>1984-10-17</td>\n",
       "      <td>2021-08-25 08:47:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>oESgL4o5i1n3mU8KdGAOZgEqLhcQ7gICHN</td>\n",
       "      <td>男</td>\n",
       "      <td>ºº</td>\n",
       "      <td>39</td>\n",
       "      <td>1982-10-02</td>\n",
       "      <td>2022-08-14 21:42:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>oESgL4YWbZ7lhxkM0CN2moG59QVFsAni1</td>\n",
       "      <td>男</td>\n",
       "      <td>ºº</td>\n",
       "      <td>15</td>\n",
       "      <td>2005-10-07</td>\n",
       "      <td>2021-01-23 22:37:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>oESgL4yah3mzb4GAKlSgIU72cL6VNZHOE0</td>\n",
       "      <td>女</td>\n",
       "      <td>ºº</td>\n",
       "      <td>26</td>\n",
       "      <td>1993-08-27</td>\n",
       "      <td>2020-08-20 06:08:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>oESgL41OnbyY4gBvqPKxuUpNwLe2C9o3S</td>\n",
       "      <td>女</td>\n",
       "      <td>ºº</td>\n",
       "      <td>50</td>\n",
       "      <td>1971-02-28</td>\n",
       "      <td>2021-03-26 11:06:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id                                openid gender nation  age  \\\n",
       "0        1  oESgL49f6uUwCtcLxpi12TqQKdr4geRvbzGM      男     ºº   36   \n",
       "1        2    oESgL4o5i1n3mU8KdGAOZgEqLhcQ7gICHN      男     ºº   39   \n",
       "2        3     oESgL4YWbZ7lhxkM0CN2moG59QVFsAni1      男     ºº   15   \n",
       "3        4    oESgL4yah3mzb4GAKlSgIU72cL6VNZHOE0      女     ºº   26   \n",
       "4        5     oESgL41OnbyY4gBvqPKxuUpNwLe2C9o3S      女     ºº   50   \n",
       "\n",
       "   birthdate         create_time  \n",
       "0 1984-10-17 2021-08-25 08:47:00  \n",
       "1 1982-10-02 2022-08-14 21:42:00  \n",
       "2 2005-10-07 2021-01-23 22:37:00  \n",
       "3 1993-08-27 2020-08-20 06:08:00  \n",
       "4 1971-02-28 2021-03-26 11:06:00  "
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_people['birthdate'] = df_people['birthdate'].astype('datetime64')\n",
    "df_people['create_time'] = df_people['create_time'].astype('datetime64')\n",
    "df_people.head()\n",
    "# 时间格式转变"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>user_id</th>\n",
       "      <th>gender</th>\n",
       "      <th>nation</th>\n",
       "      <th>age</th>\n",
       "      <th>birthdate</th>\n",
       "      <th>create_time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>男</td>\n",
       "      <td>ºº</td>\n",
       "      <td>36</td>\n",
       "      <td>1984-10-17</td>\n",
       "      <td>2021-08-25 08:47:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>男</td>\n",
       "      <td>ºº</td>\n",
       "      <td>39</td>\n",
       "      <td>1982-10-02</td>\n",
       "      <td>2022-08-14 21:42:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>男</td>\n",
       "      <td>ºº</td>\n",
       "      <td>15</td>\n",
       "      <td>2005-10-07</td>\n",
       "      <td>2021-01-23 22:37:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>女</td>\n",
       "      <td>ºº</td>\n",
       "      <td>26</td>\n",
       "      <td>1993-08-27</td>\n",
       "      <td>2020-08-20 06:08:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>女</td>\n",
       "      <td>ºº</td>\n",
       "      <td>50</td>\n",
       "      <td>1971-02-28</td>\n",
       "      <td>2021-03-26 11:06:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   user_id gender nation  age  birthdate         create_time\n",
       "0        1      男     ºº   36 1984-10-17 2021-08-25 08:47:00\n",
       "1        2      男     ºº   39 1982-10-02 2022-08-14 21:42:00\n",
       "2        3      男     ºº   15 2005-10-07 2021-01-23 22:37:00\n",
       "3        4      女     ºº   26 1993-08-27 2020-08-20 06:08:00\n",
       "4        5      女     ºº   50 1971-02-28 2021-03-26 11:06:00"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df2 = df_people.drop(columns = ['openid'])\n",
    "df2.head()\n",
    "#删除无用列"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 数据可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "a = (df2['gender']=='男').sum()\n",
    "b = (df2['gender']=='女').sum()\n",
    "c = (df2['gender']=='未知').sum()\n",
    "# 构建数据\n",
    "total = [a,b,c]\n",
    "# 中文乱码处理\n",
    "plt.rcParams[\"font.sans-serif\"] = [\"KaiTi\"]\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "# 绘图\n",
    "plt.bar(range(3),total,align = \"center\",color = \"steelblue\",alpha = 0.6)\n",
    "\n",
    "# 添加y轴标签\n",
    "plt.ylabel(\"人数\")\n",
    "# 设置Y轴的刻度范围\n",
    "plt.ylim([0,50])\n",
    "\n",
    "# 添加x轴刻度标签\n",
    "plt.xticks(range(3),['男','女','未知'])\n",
    "\n",
    "# 添加标题\n",
    "plt.title('性别人数')\n",
    "\n",
    "# 为每个条形图添加数值标签\n",
    "for x,y in enumerate(total):\n",
    "    plt.text(x,y+1,'%s' %round(y,1),ha='center')\n",
    "    \n",
    "# 显示图形\n",
    "plt.show()  \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 附件3-场所信息表处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>grid_point_id</th>\n",
       "      <th>name</th>\n",
       "      <th>point_type</th>\n",
       "      <th>x_coordinate</th>\n",
       "      <th>y_coordinate</th>\n",
       "      <th>create_time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>宾馆旅店1</td>\n",
       "      <td>住宿</td>\n",
       "      <td>206.58</td>\n",
       "      <td>28677.15</td>\n",
       "      <td>2020/3/11 12:18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>餐厅（馆）1</td>\n",
       "      <td>餐饮</td>\n",
       "      <td>17852.66</td>\n",
       "      <td>16138.45</td>\n",
       "      <td>2020/5/13 21:52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>酒店1</td>\n",
       "      <td>住宿</td>\n",
       "      <td>34609.64</td>\n",
       "      <td>29223.96</td>\n",
       "      <td>2020/5/6 19:32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>招待所1</td>\n",
       "      <td>住宿</td>\n",
       "      <td>49494.29</td>\n",
       "      <td>37399.59</td>\n",
       "      <td>2020/9/20 19:42</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>咖啡馆1</td>\n",
       "      <td>休闲</td>\n",
       "      <td>32252.98</td>\n",
       "      <td>29752.48</td>\n",
       "      <td>2020/12/4 12:49</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   grid_point_id    name point_type  x_coordinate  y_coordinate  \\\n",
       "0              1   宾馆旅店1         住宿        206.58      28677.15   \n",
       "1              2  餐厅（馆）1         餐饮      17852.66      16138.45   \n",
       "2              3     酒店1         住宿      34609.64      29223.96   \n",
       "3              4    招待所1         住宿      49494.29      37399.59   \n",
       "4              5    咖啡馆1         休闲      32252.98      29752.48   \n",
       "\n",
       "       create_time  \n",
       "0  2020/3/11 12:18  \n",
       "1  2020/5/13 21:52  \n",
       "2   2020/5/6 19:32  \n",
       "3  2020/9/20 19:42  \n",
       "4  2020/12/4 12:49  "
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_place.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_place['create_time'] = df_place['create_time'].apply(pd.to_datetime,format='%Y-%m-%d %H:%M')\n",
    "# 修改时间格式"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>grid_point_id</th>\n",
       "      <th>name</th>\n",
       "      <th>point_type</th>\n",
       "      <th>x_coordinate</th>\n",
       "      <th>y_coordinate</th>\n",
       "      <th>create_time</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>宾馆旅店1</td>\n",
       "      <td>住宿</td>\n",
       "      <td>206.58</td>\n",
       "      <td>28677.15</td>\n",
       "      <td>2020-03-11 12:18:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>餐厅（馆）1</td>\n",
       "      <td>餐饮</td>\n",
       "      <td>17852.66</td>\n",
       "      <td>16138.45</td>\n",
       "      <td>2020-05-13 21:52:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>酒店1</td>\n",
       "      <td>住宿</td>\n",
       "      <td>34609.64</td>\n",
       "      <td>29223.96</td>\n",
       "      <td>2020-05-06 19:32:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>招待所1</td>\n",
       "      <td>住宿</td>\n",
       "      <td>49494.29</td>\n",
       "      <td>37399.59</td>\n",
       "      <td>2020-09-20 19:42:00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>咖啡馆1</td>\n",
       "      <td>休闲</td>\n",
       "      <td>32252.98</td>\n",
       "      <td>29752.48</td>\n",
       "      <td>2020-12-04 12:49:00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   grid_point_id    name point_type  x_coordinate  y_coordinate  \\\n",
       "0              1   宾馆旅店1         住宿        206.58      28677.15   \n",
       "1              2  餐厅（馆）1         餐饮      17852.66      16138.45   \n",
       "2              3     酒店1         住宿      34609.64      29223.96   \n",
       "3              4    招待所1         住宿      49494.29      37399.59   \n",
       "4              5    咖啡馆1         休闲      32252.98      29752.48   \n",
       "\n",
       "          create_time  \n",
       "0 2020-03-11 12:18:00  \n",
       "1 2020-05-13 21:52:00  \n",
       "2 2020-05-06 19:32:00  \n",
       "3 2020-09-20 19:42:00  \n",
       "4 2020-12-04 12:49:00  "
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_place.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 场所地可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['住宿', '餐饮', '休闲', '洗浴', '生活', '娱乐', '运动', '旅游', '学习', '文化', '核酸采样点', '购物', '工作', '医疗', '交通', '办公', '住宅']\n"
     ]
    }
   ],
   "source": [
    "list_place_type = list(df_place['point_type'].unique()) \n",
    "print(list_place_type)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[8, 8, 5, 4, 4, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1]"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = list(pd.value_counts(df_place['point_type']))\n",
    "x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 中文乱码处理\n",
    "plt.rcParams[\"font.sans-serif\"] = [\"KaiTi\"]\n",
    "plt.rcParams['axes.unicode_minus'] = False\n",
    "\n",
    "# 图片的长、高设置\n",
    "plt.figure(figsize=(15,5))\n",
    "# 绘图\n",
    "plt.bar(range(17),x,align = \"center\",color = \"steelblue\",alpha = 0.6)\n",
    "\n",
    "# 添加y轴标签\n",
    "plt.ylabel(\"人数\")\n",
    "\n",
    "# 设置Y轴的刻度范围\n",
    "plt.ylim([0,8])\n",
    "\n",
    "# 添加x轴刻度标签\n",
    "plt.xticks(range(17),list_place_type)\n",
    "\n",
    "# 添加标题\n",
    "plt.title('场所类型')\n",
    "    \n",
    "# 显示图形\n",
    "plt.show()  \n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 散点分布图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_list = list(df_place['x_coordinate'])\n",
    "y_list = list(df_place['y_coordinate'])\n",
    "# 将x，y轴数据存为列表"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAskAAAHbCAYAAAA5wwfgAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3XmcXGWV//HPKUJCd7a2m0YIgUk6tAo/ZHFExQERZqDR8FOYRkcEEgTFBQjGddz94SCDomQRHB1QklFciSwm2qI4wgy7sqgIhnSiJAFCJ1a6QzeBpM/vj+cWqVS607XcqrpV9X2/XnlV6i51n+osdeq55znH3B0REREREdkhVe0BiIiIiIgkjYJkEREREZEcCpJFRERERHIoSBYRERERyaEgWUREREQkh4JkEREREZEcCpJFRERERHIoSBYRERERyaEgWUREREQkh4JkEZEyMrMJZnaJmb2u2mMpBzPbowrXfL2Z6fNLRMpK/8mIiJSRu28FzgbuMrM3l/t6ZjbNzM4zs1dW4Fp/B9xhZr2VeG9ZrgXuN7POCl5TRBqMgmQRkRiZWauZteZs7gWeB/4759gPm9lXzawjxiH0A18GHjaz78b4urtw97+4++uBzwE/MLOXlfN6WaYARwLTK3Q9EWlACpJFROLVAjxpZj/O2ubAH919MOfY54D5wP/GdXF33wL8IHr6bFyvO8Y1/wu4DPihmTWX81rRF4ppwP+4+6/LeS0RaWzjqj0AEZF64u69ZvY7YM+szc3ASjPbG5gF3OvuDuwd7f92zMP4ffS4MnujmTUBhwGPu/vGYl/czD4DPAD0uPsL0ebLgDcA15tZt7tvL/b1x/DP0eM3ssYzFTgQ6AAOIvyMW4FB4EZ3v7lMYxGROqYgWUQkfk8Am81sAnAc8HfAIcBTwAvAXOCHwBuBdcAXYr5+JgB+wcyOBl4dXetkQsC+0cxmufvmIl9/PvASQjB+GIC7u5nNAR4CvmFm74m+CBQtWhTYBuxLmD3eHzg32v1+M/sUIeViUtZpTgiOnwf2AM6MgvafljIWEWk8CpJFRGJiZga8khDUvQF4J9AEGPBrYCHwS3d/1sz2A44F3ufuQzEP5bno8Xzgg4SAcR1hxvpu4GfFBshmNomQEwwh9/lF7r7BzM4GfgFsM7P3FxooR2kqxxB+bpMJPzsIXy62EILzXwIrgDThC0kfsCl6PlBqcC4iAgqSRUTi9DWgixBE/omQgnAPIUC9zt1vyjr2ncAa4LoyjCOTAvFud78z5td+D2GGdlmUi7wTd/+lmV0BfJTwveH97j5cwOvPBT4AzAAeBR4BHicEw8uB1xJ+dq3Aw8DPgDPK8EVDRBqc6Qu3iEi8zOzfgEnu/sFodnk78E/uflu0fw/gz8Cn3P370bbxwKnAeYQA8UR3/2uR1+8Cfg682t1/W+r7yXrdaYSgtR84wt03jXLceMKXgyOAHwFnR6XwSrn2qcBPgPe6+zejbX8GOoGp7t5fyuuLiORSdQsRkTKJFsqdQEgZ+ISZrTezu4F3AH8DfmNm/9fMriLMlP4A2Ae4ClhfwqUzM7clBabZouYd1xHSIN45WoAM4O7PA2cS0j7eBtwW1VQu9tpNwJWEKiD/mbVrNbBBAbKIlIPSLUREYmBmE4FXAK8C/hE4GDgduB/4JPBb4EHgmej3GwgL35oIi+n+C/iSu/8hxmG93MxeAfw9IUd6I3A98MMCUyAAPk94X+9w9/8Z62B3f8TMPkEIbl8PPGRmHyGknWwr8NpXEPK835STb5wm/DyBF/OlXwuscvc1BV5DRGQnSrcQESmSmf0/oJtQgeGlhOoVvyIs0rvD3VeOcM47gf/j7p+Knh9KCJbvd/ejihjDhYQFgH8FphLKoL2cMIu7Jtq+gVDZ4ojotHuAY/INVs1sLvBN4Hx3XzLGsfsTUk0ei1JNbiUE1xm9wOXAf+WTR2xmpwHLovM+CKwF2oEDgIsIFS/uBl5GKP22B7ANWAB8TIv4RKRYCpJFRIoU5Ra/DdgPuIMwQ7wHId2hE3g7IbXiTsJM7AbgRuAz7v676DVmERamXe/uZxYxhldF1/0DMI+QgvBEbp3iKJheHD1d7O7z8nz9uYTZ4DPd/Wcj7N+TUN7uaEIgPptwl/JOQrm2JwnB7OsIXySaCD+fB4B37S6IjVI0HiDkIr+aUO7tfuBpws/ynwiz8O8iLPL7G6Gix9cJjVT2jZqriIgUTEGyiEiMzOwnhJbJ3yC0oZ4DvA94j7tfEzW+uA04190fMrPXEGZ2z3T364u85mrgWXc/dDfH/DvwcWCBu8/P83U/BrwVOJtQf/gNhFnc6cBMQuOOcYQA9Y+ExYgTgKsJa142APsXkV6RaRDyP4QZ8TcA1wJ7uPu/ZB3zHWCWux+dte1gwuLC/3L3OYVeV0QkQznJIiLx+h9gq7tfBi/mKr8P+A2Au282s3OBpWb2WkLuMoRyZsW6Hfi/YxxzKLAZ+Fw+L2hm3YT6w8dEjUI6gDMIne1uJ8yYv5wwK35ZzrmfjI77WZEB8kTgFsKMc5e7D5lZvq+TWaz4aKHXFRHJpiBZRCReW4AJZvYWQnpBZiHei22goxnkZcBXgRZCYPdYCde8HZhjZnu5e6aRCGaWyd09ADgK+EO+lSDc/Yac572EdIrMa19NCJSbRzh9mLCo7qIC3wdm1koIkNPAW939b9GuSYQgf5eh5jyfGD0W3XZbRAQUJIuIxG0qIUf5GMJs5rPR9hdyjvt3QgA9A/hvd8/dX4hfRo9Xm9m+hFSIvyN02nuaUAHiHuBZM9vH3TeUcK1MObhTote+dIRDphDe00CBr3sYcA2hFN5Xc/KVZxG+DOTyqP33dMLivjdE258Z4VgRkbwpSBYRideBwM3u/kWAqAQbhFnXF7n7VjO7ltCVr6Syb+7+FzP7LqGByBOExXJPltrAYzfOJMxOfzh75hrAzKYQuuGtK+QFzeythJbeXVmzx5l9LyGki/xohFOHCV8G3g18hB2faw8Wcn0RkVwKkkVE4vUK4JVmdhRh8VomB3h89kHRjO8HgQFgnpk94u7/SZ7MrDO7xJy7nzXCMfsCg9kpFmbWCSwCvk+oqFHQDLaZtRBmwR9iR7WMbEdGj6sKed2oZfdNo+weR2jI8ruc7cPAcDTj/Akz20BIYfl5lB4iIlI0ddwTEYlJlIbwamAJsJDQYjqz4Gxy1nH7AD2EkmUHA8uBb5rZt6IgdKzrnEBoUJK97aNmdnjOoacB68zsw5kNUWDdR+ie94iZHVfIeyTUH54KnDVKgD07evx9ga87Knd/hpCGkZtu4ezoLpgZ248Js8oiIiVRkCwiEp+jCAHkT939v929jx0zyHsDmNnRwF2EHOHXuPs6Qi3lu4jq/ZrZxWY20oK4jM8T6g1n6wTuNbOTsrZ9mzBTfUVU7zjj3YQqHAcBvzSz2eTBzC4glLSbO1JnwOhLwtsI6Q935fOa+XL380eoeezRtTLHuLu/LfqZioiUREGyiEh83g78JWdh3LTocYKZnQGcBJwYBX0DAO4+SJiB/R2hIsYC4Ekzu9rMjsh6LczszYQOe0/mXPsqQkD+2cyGKF/43YTZ1mOytm8F3kKobTwO+NpYb8zMzgS+AszJrnxhZp83s8xiuc8QFiKucPdnd32V2A0TqomIiMROOckiIvE5iFC+jChw/H+EWsIQmn18b7QT3f1vUerD2YRFcVsIi/ByZ4y/ED3+Kuf8h8zsFnbUCc5sX2Fm7yG0p8693omEhiezzCzl7tmpC0TvI0VI7Xgf8GZ3vy3nkHuA35jZACGlZBj44mjvM2bDhJQVEZHYqeOeiEhMoiYhd7n7n6Lnc4BvEQK5fXNbRRfx+pMI6RN/Al45QuvpyUDK3UeqJzzaa7YB/+TuPxhl/ycIwejVo5V0M7NH2NEU5ePu/qV8r18KM/s60Ofun6nE9USksWgmWUQkJu7+rZznS81sBvBcqQFy9HpbzOzXwEdGer1C6xJH52wk1CUebf9lo+3LsoIQSF/i7j8sdAwlGCDMtouIxE4zySIiUpPM7F3A/e4eWyUNEZEMBckiIiIiIjlU3UJEREREJIeCZBERERGRHAqSRURERERyqLpFCczMCI0CCl5RLiIiIiIVMxlY7wUsxlOQXJppwNpqD0JERERExjQdyLttvYLk0gwAPPHEE0yZMqXaYxERERGRHP39/RxwwAFQ4J1/BckxmDJlioJkERERkTqihXsiIiIiIjkUJIuIiIiI5FCQLCIiIiKSI5E5yWa2GLgwa9Mqdz/IzA4Fvg0cBFwDfCxTysPMjgP+A2gHvujuX816vdOBrwB7Ah929+9l7bsA+CzwLPBud78t7vezfft2XnjhhbhfVkq05557sscee1R7GCIiIpJAiQySgb8HZgN3Rs+3m9kE4BagB3gHsAg4B/i2mbUDNxMC4e8B3zezB9z911Fg/V3gAuAeYJmZ/c7dHzOzLuCK6PWeAb5jZke5+8Y43oS789RTT5FOp+N4OSmDlpYW9t13X0LJaxEREZHACqipXBFmNg7YBExz9y1Z208FvgVMd/dBMzscuMrdjzGzDwLvAw52dzeztwJvc/ezzGwB8Ap3Pzl6nYuBdnf/tJndCDzl7u+L9l0J/NHdr8lzrFOAzZs3bx6xusWTTz5JOp1mn332obm5WYFYgrg7g4ODbNiwgZaWFvbbb79qD0lERETKoL+/n6lTpwJMdff+fM9L4kzyKwEDHjSz/YHfAOcDhwN3u/tgdNzDwCHR7w8HbsvqonIvcFnWvp9lvf69wGey9l2fs+/Y0QYWzWZPyNo0ebRjt2/f/mKA3NbWNtphUkVNTU0AbNiwgX322UepF9I43GHjRtiyBSZNgrY20Jd4EZGdJHHh3iHAH4Ezot+/AHwDmAKszhwUBcTbzewlufuAfmD/6PfF7hvJJ4DNWb9G7baXyUFubm7ezctJtWX+fJQzLg0hnYaFC6GzE9rbYebM8NjZGbYrNUxE5EWJC5Ld/bvu/jp3v8/dVxMW8J1EGOvWnMOfA5qBbTn7MtspYd9ILgOmZv2aPtb7iSXFwh36+mDNmvBYhRSZYtJy1q9fz80338zFF1/MbbcVth7y7rvvLiiX+89//jMXXnghmzdvLug6SoGRhtHTA9Onw/z50Nu7877e3rB9+vRwnIiIJC9IHkGaMM6nCJUrsk0GnifkMLePsJ0S9u3C3be6e3/mFwW2NyxYgmZ9Xv3qV3PzzTePedw3vvEN3vzmN3Pttddyzz33cMABB/DXv/6Vyy+/fNRz+vt3TQ+6/fbb+ehHP5r3+Do7O1m6dOmLM8KFBssida2nB2bPhqGh8CU790tvZtvQUDhOgbKISPKCZDP7qpm9PWvTUcAw8HvgdVnHzSDkB28C7sveBxwBrIt+X+y+6krQrM/w8DCrV6/OJL3v1jnnnMMLL7zAiSeeyN57783999/P448/zpe+9KVRz/npT3/KWWedtdO2adOm0dnZmfcYzYx9992XK6+8klNPPZVzzz2XVatW5X2+SN1Kp6G7OwTBw8O7P3Z4OBzX3a3UCxFpeIkLkoEHgUvN7A1mdgKwGLgO+AUw1czmRMf9K/BLd99OKP92jJkdH1XH+AihVBzADcA7zOwQM5sIXJS178fAB8xsXzPbBzgva1/1JGzW59Zbb+Wwww7juOOOG/PYCRMmcNppp/HII48wadIkTjnlFH71q19x2GGHjXrOa17zGp577jkAfvazn7FhwwbGjx/PpEmTePDBB1m2bBnbt28f89rTpk3j0ksv5cYbb+SGG25g1qxZ+b9JkXq1ZAkMDo4dIGcMD4fjly4t77hERBIucdUt3H2pmR0M3ERIZ/gJ8El332Zm5wPXm9mXgT2A46Jz+szsw4QAdzOhMch50b6HzOxrwAPAIGGh3tXR5W4h1Eh+PHp+O7Cs/O9yNwqd9UmlwvFr10JLS1mGdOWVV9Ld3Z3XsQ8++CD9/f08+eSTPP300zz88MN873vfY8OGDdx3330jVpCYPHky48aN44477uD2228nnU4zbtw4fv7zn/P444/z9a9/nccee4wDDzxwt9ceP348jzzyCA888ABHHnkkhxxyyG6PF6l77rB4cXHnLloEF12kqhci0rCSOJOMu3/C3V/i7ge6+8Xu/my0/Uagk1AS7mB3/2PWOVcTqmGcCxzm7k9nvx4hbeOdwNHuPhRtd3d/J3AicCpwihezQi1OCZv1ufvuu9ljjz2YNm0aDz/88JjHt7S08NRTT3HmmWey7777MnfuXBYsWMD27dtHDJAfe+wxvvCFL3DHHXfw+9//nv322481a9Zw9dVXc8opp3DxxRdz8sknjxogL1u2jNNOO42FCxfylre8hT//+c/ceeedHHHEETz66KMlv3+RmrZxI6xaVfhiX/dw3qZN5RmXiEgNSGSQvDvuvs7db3L3Z0bY97i73zJSoWh3f9jdf+buuRUycPe73P2X7p5nZFompc76xBzfDw8P86lPfYrFixfT3d3Ntddey2OPPbbbc/baay/22GMPxo8fz3nnncfAwADuzv77j1xZr6mpiY997GN0dXVx8sknc/PNN5NKpTj//PN5/vnn+fa3v83hhx8+6vWOPfZYNm/ezMUXX8yFF17IqaeeSltbG5dddhmveMUrSnr/IjVvy5axj9mdgfKuTRYRSbKaC5LrWsJmfb74xS/y9re/nY6ODgAuueQS3vWud/HQQw+Nes6mTZuYPDn0WJk2bRqTJ09mYGCAPffcc8TjDzzwQKZNm4a7k06nec973sPf//3fk0qlOPLII7n11ls5++yzAUYM0Nvb25k4cSI/+MEPuPzyy/n0pz/NXXfdxbHHjtoTRqRxTJpU2vmTR+2XJCJS9xQkJ0mCZn1uuukm1q9fz3vf+94Xt02dOpWFCxdy4okn8qMf/WjE8+69916mTZvGo48++uJM7uDg4KiVMQYHB/nqV7/K9u3bOeigg9hvv/1Yt24dxx9/PEcccQR33HHHiwvwrr/++p3OzSz2+/znP8/rX/96PvShD/GZz3yGW2+9lZe+9KU88sgjJf8cRGpaWxvMmlV4XrFZOK+1tTzjEhGpAQqSkyQhsz433HADDz74IFddddUu+4466ig++9nP8va3v53Xv/71/OhHP2Lbtm0v7u/s7KSrq4uvf/3rnHnmmXz0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\n",
      "text/plain": [
       "<Figure size 800x500 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘图\n",
    "plt.figure(figsize=(8,5), dpi=100)\n",
    "plt.scatter(x_list, y_list, c='red', s=100, label='人员地点')\n",
    "plt.xticks(range(0, 60000, 10000))\n",
    "plt.yticks(range(0, 60000, 10000))\n",
    "plt.xlabel(\"x坐标\", fontdict={'size': 16})\n",
    "plt.ylabel(\"y坐标\", fontdict={'size': 16})\n",
    "plt.title(\"散点分布\", fontdict={'size': 20})\n",
    "plt.legend(loc='best')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
